package cn.itrip.common;

import cn.itrip.beans.dto.Dto;
/**
 * Created by Administrator on 2018/11/23.
 */
/**
 *  酒店业务：1 开头（10000）
 *  评论业务：10001 ——10100
 *  酒店详情业务：10101 ——10200
 *  订单业务：10201 ——10400
 *  搜索业务：2 开头（20000）
 *  用户认证业务：3 开头（30000）
 *  用户支付业务：4 开头（40000
 *
 */
public class DtoUtils<T> {

    /**
     * 操作成功
     * @return
     */
    public  static Dto getSuccesDto(String code){
        Dto dto=new Dto();
        dto.setMsg("操作成功");
        dto.setErrorCode(code);
        dto.setSuccess("true");
        return dto;
    }

    /**
     * 操作失败
     * @param message
     * @param code
     * @return
     */
    public  static Dto getErrorDto(String message,String code){
        Dto dto=new Dto();
        dto.setMsg(message);
        dto.setErrorCode(code);
        dto.setSuccess("false");
        return dto;
    }

    /**
     * 异常
     * @param t
     * @param code
     * @return
     */
    public  static Dto getExcetpionDto(Throwable t,String code){
        Dto dto=new Dto();
        dto.setMsg("服务器忙"+t.getMessage());
        dto.setErrorCode(code);
        dto.setSuccess("false");
        return dto;
    }

    /**
     * 操作成功！有返回值
     * @param object
     * @param <T>
     * @return
     */
    public static <T>Dto<T> getSuccesDto(T object){
        Dto dto=new Dto();
        dto.setMsg("操作成功");
        dto.setErrorCode("00000");
        dto.setSuccess("true");
        dto.setData(object);
        return dto;
    }

    public  static Dto getExcetpionDto2(Object t,String code){
        Dto dto=new Dto();
        dto.setMsg("可能是空的");
        dto.setErrorCode(code);
        dto.setSuccess("false");
        dto.setData(t);
        return dto;
    }

    /**
     * 返回给前端的信息对象
     * @param errorCode //异常
     * @param msg  //提示信息
     * @param data //返回数据
     * @param success //成功失败标识
     * @return dto对象
     */
    public static Dto getDto(String errorCode,String msg,Object data,String success,Throwable throwable){
        Dto dto=new Dto();
        if(throwable==null){
            dto.setErrorCode(errorCode);
        }else {
            dto.setErrorCode(errorCode+":"+throwable.getMessage());
        }
        dto.setData(data);
        dto.setMsg(msg);
        dto.setSuccess(success);
        return dto;
    }
}
